package com.swotxu.firstribbonclient.customping;

import com.netflix.loadbalancer.BaseLoadBalancer;
import com.netflix.loadbalancer.PingUrl;
import com.netflix.loadbalancer.Server;

import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.TimeUnit;

/**
 * @Date: 2020/8/2 16:32
 * @Author: swotXu
 */
public class TestPingUrl {

    public static void main(String[] args) throws InterruptedException {
        // 创建负载均衡器
        BaseLoadBalancer balancer = new BaseLoadBalancer();
        //添加服务器列表
        List<Server> servers = new ArrayList<Server>();
        servers.add(new Server("localhost", 8081));
        // 一个不存在的端口
        servers.add(new Server("localhost", 8088));
        balancer.addServers(servers);
        // 设置 IPing 的实现类 PingUrl
        balancer.setPing(new PingUrl());
        // 设置 Ping 时间间隔为 2s
        balancer.setPingInterval(2);
        TimeUnit.SECONDS.sleep(6);
        // 进行6次服务器选择
        for (Server server : balancer.getAllServers()) {
            System.out.printf("%s 状态： %b %n", server.getHostPort(), server.isAlive());
        }
    }
}
